package controllers;

import dao.DaoAdmin;
import dao.DaoPessoa;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import model.Admin;


@ManagedBean
@ViewScoped
public class ControllerAdmin {
    private String status = "Novo";
    private String id = "";
    private String nome="";
    private String login="";
    private String senha="";    
    private boolean desabilitaBotao = false;
    private DaoAdmin daoAdmin = new DaoAdmin();
    private DaoPessoa daoPessoa = new DaoPessoa();
    private List<Admin> admins = daoAdmin.listarTodos();
   
    public ControllerAdmin() {
    }

    public boolean isDesabilitaBotao() {
        return desabilitaBotao;
    }

    public void setDesabilitaBotao(boolean desabilitaBotao) {
        this.desabilitaBotao = desabilitaBotao;
    }
    
    public List<Admin> getAdmins() {
        return admins;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
    
    public void setAdmins(List<Admin> admins) {
        this.admins = admins;
    }
    
    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    
    public void novo(){
        setStatus("Novo");
        setId("");
        setLogin("");
        setNome("");
        setSenha("");
        setDesabilitaBotao(false);
        
    }
    
    public void gravar(){
        if (getId().equals("")){
            if ((!this.daoPessoa.buscarPorLogin(getLogin())) && (!getLogin().equals("admin"))){
                Admin a = new Admin();
                a.setNome(getNome());
                a.setSenha(getSenha());
                a.setUsuario(getLogin());
                this.daoAdmin.inserir(a);
                setDesabilitaBotao(false);
                
                setLogin("");
                setNome("");
                setSenha("");
                setStatus("Novo");
                this.admins = daoAdmin.listarTodos();                        
                 
                util.UtilWeb.enviarMessagemInfo("MSG", "Usuário criado com sucesso");                
            }else{
                util.UtilWeb.enviarMessagemErro("MSG", "Usuário já está cadastrado");
            }
        }else{
            Admin a = (Admin) this.daoAdmin.buscarPorId(Long.parseLong(getId()));
            a.setNome(getNome());
            a.setSenha(getSenha());
            daoAdmin.atualizar(a);
            
            setId("");
            setLogin("");
            setNome("");
            setSenha("");
            setStatus("Novo");
            this.admins = daoAdmin.listarTodos();                    
            
            util.UtilWeb.enviarMessagemInfo("MSG", "Usuário alterado com sucesso");                            
        }
    }
    
    public void atualizar(int id){
        Admin a = (Admin)daoAdmin.buscarPorId(new Long(id));
        
        setStatus("Alterar");
        setId(""+a.getId());
        setLogin(a.getUsuario());
        setNome(a.getNome());
        setSenha(a.getSenha());
        setDesabilitaBotao(true);
    }
    
    public void excluir(int id){
        Admin a = (Admin) daoAdmin.buscarPorId(new Long(id));
        this.daoAdmin.excluir(a);
    
        this.admins =daoAdmin.listarTodos();      
        util.UtilWeb.enviarMessagemInfo("msg", "Registro excluído com sucesso!");
    }
    
}
